Information technology (IT) architecture of an enterprise is very complex, and it might contain hundreds of applications that are coupled to one another in a very complex way. In this circumstance, performing test on applications becomes a challenging task. Testing is one of the largest money and time consumers in a software development budget. 30% to 50% of servers are dedicated for testing, and most test servers run at utilization of less than 10%. Therefore, it will waste large amounts of resources.
There are already some companies providing Cloud test environments to users. When users have to perform test, they may use corresponding test environments of these companies so as to save resources.
Nowadays, a common way of applying Cloud test environments is to allocate respective applications to different virtual machine (VM) instances that have corresponding configurations, according to separate original hardware and software configurations needed for testing applications. In such a way, capacity planning is avoided; however, a tremendous waste may be caused as original hardware and software configurations may not be well planned and the capacity exceeds the demand.